1
Foundations of Algorithmic Logic
MATH002 Lesson 4
00:00
Imagine an algorithm not as a string of code, but as a master blueprint for problem-solving that stands independent of any programming language. It is the logical bridge where raw data (Input) is meticulously sculpted through a sequence of precise, finite steps into a desired result (Output). This process is inherently deterministic—meaning every path is predictable—and general, designed to solve entire categories of problems rather than a single fluke instance.

The Anatomy of Algorithmic Logic

In Discrete Mathematics, we define an algorithm as a step-by-step method of solving a specific problem. To differentiate a simple "to-do list" from a formal mathematical algorithm, we look for two primary artifacts:

  • Pseudocode: A high-level, human-readable description of the logic. It ignores syntax (like semicolons) and focuses on flow.
  • The Trace: A manual log of the algorithm’s state. We record the value of every variable at every step to verify that the logic holds true.

The Seven Defining Traits

1. Input: The algorithm receives external data to process.
2. Output: The algorithm produces a result or solution.
3. Precision: Every instruction is clear and unambiguous.
4. Determinism: Intermediate results are unique and depend solely on the input and preceding steps.
5. Finiteness: The process is guaranteed to stop after a limited number of steps.
6. Correctness: The produced output truly solves the intended problem.
7. Generality: The method works for a wide set of potential inputs.

Mathematical Foundations: Divisibility

Many algorithms rely on number theory to function. For example, parity checks (even/odd) or prime number verification use the definition of divisibility:

We say an integer $d$ divides $n$ (written $d|n$) if there exists an integer $k$ such that $n = dk$.

This core logic allows an algorithm to branch based on numeric relationships, such as identifying a check digit in a credit card number using the Luhn Algorithm.

🎯 Core Principle
An algorithm is the formalization of logic. It must be finite, deterministic, and correct. If it loops forever or produces ambiguous results, it is a procedure, not a formal algorithm.